import type { CSSProperties } from 'vue'

export interface TableTitleType {
  prop: string
  label: string
  width?: string
  align?: string
  'min-width'?: string
  'max-width'?: string
}

export type BasicTablePropsType<T> = {
  // 是否显示索引
  showIndex?: boolean
  // 是否显示选择
  showSelection?: boolean
  // 表格标题
  tableConfigs: TableTitleType[]
  // 表格数据
  tableData: T[]

  // 数据总数
  total?: number
  // 当前页码
  page?: number
  // 每页多少个数据
  pageSize?: number

  // 表格头样式
  headerCellStyle?: CSSProperties
  // 表格单元格数据
  cellStyle?: CSSProperties

  layout: 'fixed' | 'auto'

  // 操作栏是否固定
  isHandleFixed?: boolean
}

export type TScrollTableProp<T> = {
  showExpand: boolean
  showIndex: boolean
  showSelection: boolean

  tableConfigs: TableTitleType[]
  tableData: T[]
  isLoading: boolean
}
